#include "hermiteparametrica.h"

HermiteParametrica::HermiteParametrica()
{
}

double HermiteParametrica::calculaValorFuncaoX(double parametro, QVector<Ponto> pontosReferencia) {
    Ponto p1 = pontosReferencia[0];
    Ponto p4 = pontosReferencia[1];
    Ponto r1 = pontosReferencia[2];
    Ponto r4 = pontosReferencia[3];

    return (2*p1.x()-2*p4.x()+r1.x()+r4.x())*parametro*parametro*parametro+
            (-1*3*p1.x()+3*p4.x()-2*r1.x()-r4.x())*parametro*parametro+
            (r1.x())*parametro+
            (p1.x());
    /*return (2*parametro*parametro*parametro-3*parametro*parametro+1)*p1.x()+
            (3*parametro*parametro-2*parametro*parametro*parametro)*p4.x()+
            (-2*parametro*parametro+parametro*parametro*parametro+parametro)*r1.x()+
            (-parametro*parametro+parametro*parametro*parametro)*r4.x();*/
}

double HermiteParametrica::calculaValorFuncaoY(double parametro, QVector<Ponto> pontosReferencia) {
    Ponto p1 = pontosReferencia[0];
    Ponto p4 = pontosReferencia[1];
    Ponto r1 = pontosReferencia[2];
    Ponto r4 = pontosReferencia[3];

    return (2*p1.y()-2*p4.y()+r1.y()+r4.y())*parametro*parametro*parametro+
            (-1*3*p1.y()+3*p4.y()-2*r1.y()-r4.y())*parametro*parametro+
            (r1.y())*parametro+
            (p1.y());
    /*return (2*parametro*parametro*parametro-3*parametro*parametro+1)*p1.y()+
            (3*parametro*parametro-2*parametro*parametro*parametro)*p4.y()+
            (-2*parametro*parametro+parametro*parametro*parametro+parametro)*r1.y()+
            (-parametro*parametro+parametro*parametro*parametro)*r4.y();*/
}
